nested vmx: use VMREAD/VMWRITE to construct vVMCS if enabled VMCS shadowing
authorDongxiao Xu <dongxiao.xu@intel.com>
Fri, 25 Jan 2013 09:18:40 +0000 (10:18 +0100)
committerDongxiao Xu <dongxiao.xu@intel.com>
Fri, 25 Jan 2013 09:18:40 +0000 (10:18 +0100)
commit8916ad7199bf671bacd1a6574b294831ec09c8cf
treea4723df25d42ed1e9fe96497bb7ffbf5b4ad92ab
parent806c9ba5830cf6b2ea2ab6d1605ef7351e62edfa
nested vmx: use VMREAD/VMWRITE to construct vVMCS if enabled VMCS shadowing

Before the VMCS shadowing feature, we use memory operation to build up
the virtual VMCS. This does work since this virtual VMCS will never be
loaded into real hardware. However after we introduce the VMCS
shadowing feature, this VMCS will be loaded into hardware, which
requires all fields in the VMCS accessed by VMREAD/VMWRITE.

Besides, the virtual VMCS revision identifer should also meet the
hardware's requirement, instead of using a faked one.

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Acked-by Eddie Dong <eddie.dong@intel.com>
Committed-by: Jan Beulich <jbeulich@suse.com>
xen/arch/x86/hvm/vmx/vmcs.c
xen/arch/x86/hvm/vmx/vvmx.c
xen/include/asm-x86/hvm/vmx/vmcs.h
xen/include/asm-x86/hvm/vmx/vvmx.h